import axios from 'axios'
import { Loading, Message } from 'element-ui'
import router from '../router/index.js'
import sessionUtil from './sessionUtil'

let loading
function startLoading () {
  loading = Loading.service({
    lock: true,
    text: '加载中....',
    background: 'rgba(0, 0, 0, 0)'
  })
  setTimeout(function () {
    endLoading()
  }, 60000)
}

function endLoading () {
  loading.close()
}

// 请求拦截
axios.interceptors.request.use(
  (confing) => {
    startLoading()
    let token = sessionUtil.session.get('token')
    // 设置请求头
    if (token) {
      confing.headers.accessToken = token
    }
    // if (config.method.toUpperCase() !== "GET") {
    //   config.data = qs.stringify(config.data);
    // }
    return confing
  },
  (error) => {
    return Promise.reject(error)
  }
)

// 响应拦截

axios.interceptors.response.use(
  (response) => {
    endLoading()
    return response
  },
  (error) => {
    // Message.error(error.response.data)
    endLoading()
    // 获取状态码
    const status = error.response.status;
    // const errortext = codeMessage[status] || error.response.statusText;
    //
    // // 提示错误信息
    // Vue.prototype.$message({
    //   message: errortext,
    //   type: "error"
    // });

    if (status === 401) {
      Message.closeAll()
      Message.error('请重新登录')
      // 清除token
      sessionUtil.clear()
      // 跳转到登录页面
      router.push('/login')
    }
    return Promise.reject(error)
  }
)
export default axios
